草庐IT

Javascript toFixed 不舍入

全部标签

c++ - 舍入整数例程

教程中的整数运算让我感到困惑。准确的说,整数除法。看似首选的方法是将除数转换为float,然后将float四舍五入为最接近的整数,然后将其转换回整数:#includeintround_divide_by_float_casting(inta,intb){return(int)std::roundf(a/(float)b);}然而,这就像用右手挠左耳一样。我使用:intround_divide(inta,intb){returna/b+a%b*2/b;}虽然没有什么突破,但不标准的事实让我怀疑我是否遗漏了什么?尽管我进行了(尽管是有限的)测试,但我找不到两种方法给我不同结果的任何情况。有

c++ - 如何指定 setprecision 舍入

当流到标准输出时,我可以指定setprecision来舍入double值吗?ofile输出:0.756247615801ofile输出:0.756248但我需要输出为0.756247谢谢 最佳答案 还有std::fesetround来自,设置舍入方向:#include#include#include#includeintmain(){doubleruntime=0.756247615801;//Setroundingdirectionandoutputwithsomeprecision:constautoprev_round=std

c++ - ldexp 应该正确舍入

我对MSVCldexp的行为感到有点惊讶(它发生在VisualStudio2013中,但也发生在至少到2003年的所有旧版本中......)。例如:#include#includeintmain(){doubleg=ldexp(2.75,-1074);doublee=ldexp(3.0,-1074);printf("g=%ge=%g\n",g,e);return0;}打印g=9.88131e-324e=1.4822e-323第一个g奇怪的圆了...它是2.75*fmin_denormalized,所以我绝对期待第二个结果e。如果我计算2.75*ldexp(1.0,-1074),我会正确

c++ - 将整数舍入到另一个整数的最接近倍数

我需要将整数四舍五入为另一个整数的最接近倍数。100的倍数情况下的结果示例:36->099->100123->100164->200等等。我想出了以下代码,它可以工作,但感觉“脏”:intRoundToMultiple(inttoRound,intmultiple){return(toRound+(multiple/2))/multiple*multiple;}这依靠整数除法的截断属性来实现。我可以指望此代码是可移植的吗?是否有任何编译器设置无法给我想要的结果?如果有,我怎样才能以可移植的方式获得相同的结果?如果需要更好的答案,可以假设倍数是10的幂(包括1的倍数)。也可以假设数字都是

c++ - 有没有更好的方法在 C++ 中用 n 位小数舍入 float ?

我知道常见的方法是乘以10^n,然后除以10^n。roundafloatwithonedigitnumber但是由于double精度问题,我发现上面的解决方案并不完全适用于我的情况:0.965*0.9=0.8685std::round(0.8685*1000)/1000=0.869//expectsittobe0.869std::round(0.965*0.9*1000)/1000=0.868如果我想直接从std::round(0.965*0.9*1000)/1000得到0.869,我必须把语句改成std::round((0.965*0.9+std::numeric_limits::e

c++ - 使用 Boost 舍入到 C++ 中最接近的数字?

有没有办法在Boost库中四舍五入到最接近的数字?我指的是任何数字,2、5、17等等。或者有其他方法吗? 最佳答案 您可以使用C99中提供的lround。#include#includeintmain(){cout(输出1、2、2)。如果您需要和/或如何需要启用C99支持,请检查您的编译器文档。 关于c++-使用Boost舍入到C++中最接近的数字?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

C++:如何在不进行舍入、截断或填充的情况下将 float 转换为字符串?

这个问题在这里已经有了答案:WhydoIseeadoublevariableinitializedtosomevaluelike21.4as21.399999618530273?(14个答案)关闭6年前。我遇到了一个问题,但无法解决。需要大师的帮助。这是示例代码:-floatf=0.01f;printf("%f",f);如果我们在调试期间检查变量中的值f包含'0.0099999998'值并且printf的输出是0.010000。一个。有什么方法可以强制编译器将相同的值分配给float类型的变量?我想将float转换为字符串/字符数组。怎么可能只有且只有完全相同的值才能转换为字符串/字符

ios - 如何将 iOS 价格格式从 -0.00 舍入到 0.00?

我的应用有话费。当它用完时,最终值有时会略低于0(例如-0.003)。我的代码:NSString*formattedString;NSNumberFormatter*numberFormatter;numberFormatter=[[NSNumberFormatteralloc]init];[numberFormattersetFormatterBehavior:NSNumberFormatterBehavior10_4];[numberFormattersetNumberStyle:NSNumberFormatterCurrencyStyle];[numberFormatterset

ios - 滚动时 UIBezierPath 问题的舍入

我是iOS新手。我正在制作一个聊天应用程序。我正在使用UITableView显示消息聊天(一个单元格-一条消息)。在每个单元格中,我将在2、3或4角(如Facebook聊天)中舍入消息对于rounder,我在每个TableviewCell的layoutSubView中使用UIBezierPathUIBezierPath*maskPath=[UIBezierPathbezierPathWithRoundedRect:self.messageView.boundsbyRoundingCorners:(UIRectCornerTopLeft|UIRectCornerBottomLeft)co

ios - 设置 UISlider 的最小值/最大值是否会通过舍入改变精度

假设我有一个表示从-1到2的连续值范围的UISlider。如果我保留默认值min=0,max=1,那么我的0值由slider表示为行程的1/3,浮点值1/3(0.33333333)。我对特殊值0特别感兴趣,将其表示为0.333333必须(稍微)四舍五入感觉不对。如果我将最小值更改为-1,将最大值更改为2,那么我的0值就是浮点值0.0。设置最小值/最大值会提高准确性吗?拇指是否在像素边界上移动-也许我可以使用该信息来尝试一些舍入示例? 最佳答案 我怀疑您担心这里无关紧要的事情。首先,单精度float的小数部分有23位,因此任何舍入误差